function tableAdd (data) {

	const {totalRecord, pageSize, totalPage, pageNo} = data;

	if(pageNo != totalPage) return data;

	const res = (pageSize * totalPage) - totalRecord;

	for(let i = 0; i < res; i++){
		data.results.push({});
	}

	return data;
}

function dateDiff (sDate1,  sDate2){    //sDate1和sDate2是2006-12-18格式  
   var  aDate,  oDate1,  oDate2,  iDays  
   aDate  =  sDate1.split("-")  
   oDate1  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //转换为12-18-2006格式  
   aDate  =  sDate2.split("-")  
   oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])  
   iDays  =  parseInt((oDate2 - oDate1)  /  1000  /  60  /  60  /24)    //把相差的毫秒数转换为天数  
   return  iDays  
}





/**
 *
 * @param a 数据源
 * @param idStr 当前的主键key
 * @param pidStr 存放主键的key
 * @param chindrenStr 孩子的标志
 * @returns {Array} 新的数据
 */
function transData (a, idStr, pidStr, chindrenStr){
    var r = [],
        hash = {},
        id = idStr,
        pid = pidStr,
        children = chindrenStr,
        i = 0,
        j = 0,
        len = a.length;

    for(; i < len; i++){
        hash[a[i][id]] = a[i];
    }

    for(; j < len; j++){
        var aVal = a[j],
            hashVP = hash[aVal[pid]];

        if(hashVP){
            !hashVP[children] && (hashVP[children] = []);
            hashVP[children].push(aVal);
        }else{
            r.push(aVal);
        }
    }
    return r;
}


function formatTime(time) {
	if (typeof time !== 'number' || time < 0) {
		return time
	}

	var hour = parseInt(time / 3600)
	time = time % 3600
	var minute = parseInt(time / 60)
	time = time % 60
	var second = time

	return ([hour, minute, second]).map(function (n) {
		n = n.toString()
		return n[1] ? n : '0' + n
	}).join(':')
}

function formatLocation(longitude, latitude) {
	if (typeof longitude === 'string' && typeof latitude === 'string') {
		longitude = parseFloat(longitude)
		latitude = parseFloat(latitude)
	}

	longitude = longitude.toFixed(2)
	latitude = latitude.toFixed(2)

	return {
		longitude: longitude.toString().split('.'),
		latitude: latitude.toString().split('.')
	}
}
var dateUtils = {
	UNITS: {
		'年': 31557600000,
		'月': 2629800000,
		'天': 86400000,
		'小时': 3600000,
		'分钟': 60000,
		'秒': 1000
	},
	humanize: function (milliseconds) {
		var humanize = '';
		for (var key in this.UNITS) {
			if (milliseconds >= this.UNITS[key]) {
				humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
				break;
			}
		}
		return humanize || '刚刚';
	},
	format: function (dateStr) {
		var date = this.parse(dateStr)
		var diff = Date.now() - date.getTime();
		if (diff < this.UNITS['天']) {
			return this.humanize(diff);
		}
		var _format = function (number) {
			return (number < 10 ? ('0' + number) : number);
		};
		return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDay()) + '-' +
			_format(date.getHours()) + ':' + _format(date.getMinutes());
	},
	parse: function (str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串，转化为一个Date对象
		var a = str.split(/[^0-9]/);
		return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
	}
};


function cutImage (obj) {

	var width = obj.w;
	var height = obj.h;

	if(width < 400 || height < 400 ){
		var x = '';
		var y = '';
		var w = '';
		var h = '';

		if(width > height){
			x = (width - height) * 0.5;
			y = 0;
			w = height;
			h = height;
		}else{
			x = 0;
			y = (height - width) * 0.5;
			w = width;
			h = width;
		}

		return obj.url + '?x-oss-process=image/crop,' + 'x_' + parseInt(x) + ',y_' + parseInt(y) + ',w_' + parseInt(w) + ',h_' + parseInt(h);
	}else{
		return obj.url + '?x-oss-process=style/list';
	}

};


function changeImg(url, what){
	return url + '?x-oss-process=style/' + what;
}

function str2date(strDate){

	if(typeof strDate === 'string')
	{
		var objDate = new Date(Date.parse(strDate.replace(/-/g, "/")));

		return objDate;
	}
	else
	{
		return '错误格式';
	}
	
}

/**
 *
 * @param data 树形的结构数据
 * @param num 设置成1
 * @param max 最大显示基层
 * @returns {{xjwg_num: *, backgroudcolor: string, parent_id: (*|string), qy_num: *, company_name: *, id: *, type: *, wgy_num: *}}
 */
function transTreeData (data, num, max,id) {
	let result = Object;
	let go = max-num
	let color = ['#66cc9c','#9dce65','#6376cc','#6376cc','#6376cc']
		result = {
			company_name: data.company_name,
			id: data.id,
			name : data.name,
			mobile : data.mobile,
			parent_id: data.parent_id,
			qy_num: data.qy_num,
			type: data.type,
			wgy_num: data.wgy_num,
			xjwg_num: data.xjwg_num,
			backgroudcolor: color[go]
		}
		
		if(num>=max){
			return  result
		}
	num++
	if(data.children instanceof Array) {
		let arr = []
		for (let k1 in data.children) {
			if (data.children) {
				if(go == 2){
					if(k1<1){
						arr.push(transTreeData(data.children[k1],num,max))
					}
				}else{
						arr.push(transTreeData(data.children[k1],num,max))
				}
			}else{
				console.log(data,'没有孩子')
			}
		}
		result.children = arr
	}
	return result;
}
function transTreeByIdData (data,id) {
	let result = null
	if(data.id == id) {
		console.log('fan9')
		result = data;
	}else{
		if(data.children instanceof Array) {
			for (let k1 in data.children) {
				if (data.children[k1].children instanceof Array) {
					if(data.children[k1].id == id) {
						console.log('fan')
						result = data.children[k1]
					}else{
						 let ret = transTreeByIdData(data.children[k1],id)
						  if( ret != null && ret != undefined){
						  	result = ret
							}
					}
				}else if(data.children[k1].id == id){
					console.log('fan1')
					result = data.children[k1]
				}
			}
		}
	}
		return result
}

function date2str(objDate){

	if (typeof objDate === 'object') {
		var y = objDate.getFullYear();
		var m = objDate.getMonth() + 1;
		var d = objDate.getDate();
		m = m < 10? '0' + m: m;
		d = d < 10? '0' + d: d;
		return y + '-' + m + '-' + d;
	}
	else {
		return '错误格式';
	}
	
}

/**
 * @description 绑定事件 on(element, event, handler)
 */
const on = (function () {
	if (document.addEventListener) {
		return function (element, event, handler) {
			if (element && event && handler) {
				element.addEventListener(event, handler, false)
			}
		}
	} else {
		return function (element, event, handler) {
			if (element && event && handler) {
				element.attachEvent('on' + event, handler)
			}
		}
	}
})()

/**
 * @description 解绑事件 off(element, event, handler)
 */
const off = (function () {
	if (document.removeEventListener) {
		return function (element, event, handler) {
			if (element && event) {
				element.removeEventListener(event, handler, false)
			}
		}
	} else {
		return function (element, event, handler) {
			if (element && event) {
				element.detachEvent('on' + event, handler)
			}
		}
	}
})()

export default {
	formatTime: formatTime,
	formatLocation: formatLocation,
	dateUtils: dateUtils,
	cutImage,
	changeImg,
	transData,
	str2date,
	date2str,
	transTreeData,
	transTreeByIdData,
	on,
	off,
	tableAdd,
	dateDiff,
}
